package com.redis.list;

import redis.clients.jedis.Jedis;

public class RedisList {
	public static void main(String[] args) {
		getListHeadValue();
	}
	
	/**
	 * JRedis获取List双向链表的尾部元素
	 */
	public static void getListTailValue() {
		Jedis jedis = new Jedis("127.0.0.1", 6379);
		System.out.println(jedis.lrange("java", 0, -1));
		System.out.println(jedis.rpop("java"));
		System.out.println(jedis.rpop("java"));
		System.out.println(jedis.lrange("java", 0, -1));
		jedis.close();
	}
	
	/**
	 * JRedis向List双向链表的尾部添加一个或者多个数据,从表头出元素,实现了先进先出,是一种队列结构
	 */
	public static void addValueToListTail() {
		Jedis jedis = new Jedis("127.0.0.1", 6379);
		System.out.println(jedis.lrange("java", 0, -1));
		jedis.rpush("java", "java核心技术I卷");
		jedis.rpush("java", "effective java", "java核心技术II卷");
		System.out.println(jedis.lrange("java", 0, -1));
		jedis.close();
	}
	
	/**
	 * JRedis获取List双向链表的头部元素
	 */
	public static void getListHeadValue() {
		Jedis jedis = new Jedis("127.0.0.1", 6379);
		System.out.println(jedis.lrange("java", 0, -1));
		System.out.println(jedis.lpop("java"));
		System.out.println(jedis.lpop("java"));
		System.out.println(jedis.lrange("java", 0, -1));
		jedis.close();
	}
	
	/**
	 * JRedis向List双向链表的头部添加一个或者多个数据,从表头出元素,实现了先进后出,是一种栈结构
	 */
	public static void addValueToListHead() {
		Jedis jedis = new Jedis("127.0.0.1", 6379);
		jedis.lpush("java", "java编程思想");
		jedis.lpush("java", "core java", "java并发编程", "netty in action");
		jedis.lpush("java", "深入理解java虚拟机");
		System.out.println(jedis.lrange("java", 0, -1));
		jedis.close();
	}
}
